from djongo import models
from django import forms


# 用户
class User(models.Model):
    # 用户名
    username = models.CharField(max_length=55)
    # 密码
    password = models.CharField(max_length=55)
    # 创建时间
    create_time = models.DateTimeField()
    # 更新时间
    update_time = models.DateTimeField()


# 区间里面的用户列表
class UserInfo(models.Model):
    # 用户名
    username = models.CharField(max_length=55)

    class Meta:
        abstract = True


class UserForm(forms.ModelForm):
    class Meta:
        model = User
        fields = (
            'username',
        )


# 区间
class Space(models.Model):
    # id
    id = models.CharField(max_length=55, primary_key=True)
    # 区间名
    space_name = models.CharField(max_length=55)
    # 创建者
    create_user = models.CharField(max_length=55)
    # 区间状态，0：关闭，1：激活，2：游戏中
    status = models.IntegerField()
    # 可容纳玩家
    size = models.IntegerField()
    # 是否可穿越边界
    is_interstellar = models.BooleanField()
    # 是否会自杀（自己撞死自己）
    is_suicidal = models.BooleanField()
    # 创建时间
    create_time = models.DateTimeField()
    # 更新时间
    update_time = models.DateTimeField()
    # 成员列表
    members = models.ArrayField(
        model_container=UserInfo,
        model_form_class=UserForm,
    )


# 战绩
class Record(models.Model):
    # 记录的唯一标识，方便更新
    sign = models.CharField(max_length=21)
    # 用户名
    username = models.CharField(max_length=55)
    # 区间名
    space_name = models.CharField(max_length=55)
    # 区间ID
    space_id = models.CharField(max_length=55)
    # 击杀次数
    times_kill = models.IntegerField()
    # 被击杀次数
    times_killed = models.IntegerField()
    # 分数
    size = models.IntegerField()
    # 创建时间
    create_time = models.DateTimeField()
    # 更新时间
    update_time = models.DateTimeField()
